15640 PRINT CHR$(7)"THIS REPORT IS TOO WIDE FOR THE MONITOR": PRINT "SCREEN. DO YOU WANT YOUR PRINTER":L$ = "ON? ": GOSUB 2510: IF NOT YES THEN POKE 34,0: GOTO 15800
15641 IF NOT LEN(TD$) THEN GOSUB 2210
15645 T = S:S = 0: GOSUB 29020:S = T: GOTO 15630
15646 HOME : PRINT : PRINT "CONTINUOUS REPORT WITHOUT SPACING":L$ = "BETWEEN THE LINES?": GOSUB 2510:LC = 0:LT = 60: IF YES = 0 THEN GOSUB 2480
15650 PRINT : INPUT "ENTER PAGE # OF FIRST PAGE -> ";R$:PAGE = VAL(R$) -1: IF PAGE <0 THEN PAGE = 0
15655 GOSUB 2100
15660 IF PF = 0 THEN GOSUB 2480
15661 TEXT : HOME : FOR I = 1 TO RH:AC(I) = 0
15662 IF K(3 *I) = 1 THEN T9 = 1
15665 NEXT I
15670 IF PF THEN GOSUB 2010
15675 GOSUB 18010
15679 LS = 1
15680 FOR J = 1 TO NR:Y = R(J)
15685 N$(Y,0) = STR$(J)
15690 IF Q$ = "ALL" THEN 15760
15695 ON HR GOTO 15705,15740
15705 IF Q$ = "@" AND LEN(N$(Y,S)) >0 THEN 15760
15710 IF LEFT$(N$(Y,S), LEN(Q$)) = Q$ THEN 15760
15715 IF K$ = "NO" THEN 15765
15720 IF K$ = "@" AND LEN(N$(Y,K)) >0 THEN 15760
15725 IF LEFT$(N$(Y,K), LEN(K$)) < >K$ THEN 15765
15730 GOTO 15760
15740 IF Q$ = "@" AND LEN(N$(Y,S)) >0 THEN 15750
15745 IF LEFT$(N$(Y,S), LEN(Q$)) < >Q$ THEN 15765
15750 IF K$ = "@" AND LEN(N$(Y,K)) >0 THEN 15760
15755 IF LEFT$(N$(Y,K), LEN(K$)) < >K$ THEN 15765
15760 GOSUB 16010
15762 IF LS = LC THEN PRINT :LS = 0
15765 IF PF <1 THEN IF LN >16 THEN GOSUB 9010: IF NOT LF AND J <NR THEN GOSUB 18010:LS = 1: GOTO 15780
15770 IF LF THEN J = NR: GOTO 15780
15775 IF J <NR AND LN >LT THEN GOSUB 18010
15779 LS = LS +1
15780 NEXT J
15785 IF LF THEN LF = 0: PRINT : GOTO 15795
15790 ON T9 GOSUB 17020
15795 PRINT : PRINT D$"PR#0"
15800 ON E GOTO 15815
15805 PRINT : PRINT "DO YOU WANT TO SAVE THE FORMAT":L$ = "FOR THIS REPORT TO DISK ": GOSUB 2510
15810 IF YES THEN E = 1: GOSUB 19010
15815 POKE 216,0: PRINT : PRINT "MORE REPORTS USING THE "RN$(NN):L$ = "FORMAT ": GOSUB 2510
15820 IF YES THEN E = 1:PAGE = 0:LC = 0: GOTO 15030
15825 GOTO 28010
16010 FOR I = 1 TO RH: ON ABS(K(3 *I)) GOTO 16100,16030
16015 IF SEP = 1 AND J < >1 AND I = 1 THEN IF LEFT$(N$(Y,K(3 *I -2)),1) < > LEFT$(N$(R(J -1),K(3 *I -2)),1) THEN PRINT
28500 IF MS <1 OR MS >9 THEN VTAB 21: HTAB 11: CALL -958: PRINT "?": GOTO 28340
28510 CALL -958: IF NR THEN 28540
28520 IF MS <3 OR MS >7 THEN 28540
28530 PRINT : PRINT "THERE ARE NO RECORDS ON FILE":MS = 0
28535 FOR Z = 1 TO 1500: NEXT Z: GOTO 28500
28540 ON MS GOTO 3050,7010,8010,12010,15010,5400,26010,29010,31005
29000 REM << PRINTER FLAG >>
29010 IF PF THEN PF = 0:LN = 0: GOTO 29030
29020 PF = 1
29030 IF MS = 0 THEN HOME : RETURN
29035 VTAB 9: HTAB 16: CALL -868: IF NOT PF GOTO 29040
29038 FLASH : PRINT "ON": NORMAL : GOTO 29050
29040 PRINT "OFF"
29050 VTAB 18: HTAB 17: CALL -868: IF PF THEN PRINT "OFF": GOTO 29070
29060 PRINT "ON"
29070 MS = 0: GOTO 28500
29100 REM << SET PRINTER MODE >>
29110 IF PF THEN PF = 0:LN = 0: GOTO 29130
29120 PF = 1
29130 RETURN
30000 REM << DELETE FILE >>
30010 HOME : PRINT "SELECT FROM:": PRINT
30020 FOR I = 1 TO NR: PRINT I" "R$(I): NEXT I: PRINT
30030 L$ = "DELETE WHICH NUMBER ":CHOICE = I -1: GOSUB 2410:S = R
30040 HOME : VTAB 10: PRINT "YOU HAVE SELECTED THE OPTION TO DELETE": INVERSE : PRINT RN$(S)" FORMAT": NORMAL
30050 L$ = "IS THIS CORRECT": GOSUB 2510: IF NOT YES THEN NR = NS: GOTO 28010
30060 F$ = "RPTFMT" +RN$(S)
30065 Q$ = PX$ +FD$ +"/" +F$
30070 PRINT D$"DELETE";Q$
30075 PRINT D$"CLOSE"
30080 IF S = NR THEN 30100
30090 FOR I = S TO NR -1:RN$(I) = RN$(I +1): NEXT I
30100 NR = NR -1:F$ = "RPTFMTNAME": IF NR <1 THEN 30130
30110 I = 0: GOSUB 25030
30120 GOTO 22010
30130 Q$ = PX$ +FD$ +"/" +F$
30132 PRINT D$"CLOSE"
30135 PRINT D$;"DELETE";Q$
30140 NR = NS: GOTO 28010
31000 REM << QUIT ROUTINE >>
31005 IF NR = 0 AND FD$ < >"" GOTO 38010: REM PREVENT FILES WITH ZERO RECORDS
31010 TEXT : HOME : VTAB 10
31020 HTAB 3: PRINT "A BACKUP COPY IS RECOMMENDED AFTER EACH CHANGE SESSION!"
31030 VTAB 15: HTAB 3
31040 PRINT "TO ACTIVATE THE PRODOS 'FILER' PROGRAM WHICH MUST HAVE BEEN TRANSFERRED TO THIS DISK, ANSWER 'Y' TO THE REQUEST FOR BACKUP.": PRINT : VTAB 20
31050 L$ = "BACKUP": GOSUB 2510
31060 IF NOT YES THEN TEXT : HOME : END
31070 ONERR GOTO 31110
31080 PRINT D$;"VERIFY";PX$;"FILER"
31090 PRINT D$"-";PX +"FILER/"
31100 END
31110 TEXT : HOME : VTAB 10
31120 PRINT "THE PRODOS 'FILER' WAS NOT FOUND ON PATH ";PX$;"FILER"
31130 PRINT : PRINT "IF A BACKUP COPY IS DESIRED, TAKE CORRECTIVE ACTION AND INITIATE THE COPY PROCESS FROM 'FILER'"
31160 POKE 216,0
31170 END
32000 REM << SETUP POKES >>
32010 FOR I = 1013 TO 1022: READ S: POKE I,S: NEXT I
32020 I = 0
32030 RETURN
32040 DATA 104,168,104,166,223,154,72,152,72,96
33040 REM
33075 GOSUB 60110: REM SETUP DATE AFTER CLEAR
34000 FOR I = 1 TO 71: READ I%: POKE 768 +I -1,I%: NEXT I: RESTORE : RETURN
34010 DATA 32,190,222,32,227,223,36,17,208,5,162,0,76,15,3,133,133,132,134,165
34020 DATA 184,164,185,133,135,132,136,32,44,213,173,0,2,201,3,208,3,76,99,216
34030 DATA 169,0,133,13,133,14,169,0,160,2,32,237,227,32,61,231,32,123,218,165
34040 DATA 135,164,136,133,184,132,185,32,183,0,96,0,0,0,0,0,0,0,0,0
38000 REM << ZERO RECORDS >>
38010 HOME : VTAB 10
38020 PRINT "---- WARNING ----": PRINT
38030 PRINT "CREATION OF FILES WITH ZERO RECORDS RESULTS IN ERROR CONDITIONS LATER WHEN RE-STARTING OR DELETING."
38040 PRINT
38050 PRINT "CREATE AT LEAST ONE RECORD WITH DATA TO PREVENT FUTURE PROBLEMS": PRINT
38060 PRINT "PRESS ANY KEY TO RETURN TO THE MAIN MENU"
38070 GET K$
38080 GOTO 28010
60000 REM << ERROR TRAP FOR INVALID INPUT >>
60010 TEXT : HOME : VTAB 10
60020 PRINT " INVALID INPUT": PRINT
60030 PRINT "PRODOS REQUIRES THAT FILE NAMES BEGIN WITH A LETTER AND CONTAIN ONLY LETTERS, NUMBERS OR PERIODS."
60040 PRINT : PRINT "NO SPACES ARE PERMITTED,NAMES MUST NOT EXCEED 15 CHARACTERS IN LENGTH - INCLUDING ANY ASSIGNED BY THE PROGRAM."
60050 PRINT "SIX CHARACTERS ARE ADDED BY THE PROGRAM WHEN SAVING REPORT NAMES."
60060 PRINT : PRINT " PRESS ANY KEY TO RETURN TO REPORT MENU ";: GET K$